接下來要做的是show這個功能,連到個別頁面列出個別資料。
我們在index這個action裡,指派了一個實例物件
@guest = Guest.all
Guest.all其實是對資料庫下了這個SQL:
SELECT "guests".* FROM "guests"
也就是說@guest現在裝了所有Guest的資料,@guest[0]就會裝著第一筆資料、@guest[1]裝著第二筆⋯⋯等等,而每一筆資料都繼承著Guest的屬性 => :id, :title, :description。
記得我們在index.html.erb上這個show的link嗎
<%= link_to 'Show', :controller => 'guests', :action => 'show', :id => guest %>
所以當我們點擊每一筆資料後面show這個link的時候,就會前往http://localhost:3000/guests/show/guest[:id] 這個網址。
接下來編輯guests_controller.rb的show action,加入以下:
def show
@guest = Guest.find(params[:id])
end
以及在show.html.erb加入
<%= @guest.title %>
<%= simple_format(@guest.description) %>
<p><%= link_to 'Back to index', :controller => 'guests', :action => 'index' %></p>
即可在個別頁面印出個別資料。